package Management;

import java.sql.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;

public class TeacherDao {
    /**
     * 建立链接
     * 所连接的数据库名，账号和密码
     * sql执行
     * 进行填充数据库
     * 填充第1个数据
     */

    public int deleteByTno(String tno) throws SQLException {
// 2. 创建连接 localhost:1433;DatabaseName=数据库名
        Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=xie", "sa", "123456");
        // sql中的？代表占位符，  预处理执行器特有
        String sql = "delete from Teacher where tno = ?";
        PreparedStatement ps = conn.prepareStatement(sql);
        // 填充第几个？
        ps.setString(1, tno);
//填充第一个
        // 3
        // exuecuteQuery 用于 Select  executeUpdate()用于修改CUD
        int rs = ps.executeUpdate();
//定义rs

        conn.close();
        //结束
        return rs;
        //返回rs
    }
    /**
     * 建立链接localhost:1433;DatabaseName=数据库名
     * 进入for循环
     * 所连接的数据库名，账号和密码
     * sql执行
     * 进行填充数据库
     * 填充第1个数据
     */

    public void insertAll(List<TeacherPojo> slist) throws SQLException {
        // 2. 创建连接 localhost:1433;DatabaseName=数据库名
        Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=xie", "sa", "123456");
        // sql中的？代表占位符，  预处理执行器特有

        for (int i = 1; i < slist.size(); i++) {
            //进入for循环
            TeacherPojo item = slist.get(i);
            String sql = "insert into Teacher(tno, tname, tsex, cno) values(?, ?, ?, ?)";
            //sql定义各列属性值
            PreparedStatement ps = conn.prepareStatement(sql);
            // 填充第几个？
            ps.setString(1, item.getTno());
            //填充第一个
            ps.setString(2, item.getTname());
            //填充第二个
           /* System.out.println(item.getSdate());
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            java.util.Date d = null;
            try {
                d = sdf.parse(item.getSdate());
            } catch (ParseException e) {
                e.printStackTrace();
            }
            java.sql.Date d1 = new java.sql.Date(d.getTime());
            ps.setDate(3, d1);*/
            ps.setString(3, item.getTsex());
            //填充第三个
            ps.setString(4, item.getCno());
            //填充第四个
            /*ps.setString(6, item.getCareer());
            ps.setInt(7, item.getCid());*/
            // 3
            // exuecuteQuery 用于 Select  executeUpdate()用于修改CUD
            int rs = ps.executeUpdate();
            //定义更新rs
        }

        conn.close();
        //结束

    }
    /**
     * 建立TeacherPojo表链接localhost:1433;DatabaseName=数据库名
     * 所连接的数据库名，账号和密码
     * sql执行
     * 进行填充数据库
     * 填充第1个数据
     * 更新表
     * 进入while循环
     */

    public List<TeacherPojo> findStudentClassByCid(String cno) throws SQLException {
// 2. 创建连接 localhost:1433;DatabaseName=数据库名
        Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=xie", "sa", "123456");
        // sql中的？代表占位符，  预处理执行器特有
        String sql = "select tno,tname,tsex,cno\n" +
                "from Teacher\n" +
                "where cno=?";

        PreparedStatement ps = conn.prepareStatement(sql);
        // 填充第几个？
        ps.setString(1, cno);

        // 3
        ArrayList<TeacherPojo> slist = new ArrayList<>();
        ResultSet rs = ps.executeQuery();
        //更新
        while (rs.next()) {
            //进入while循环
            TeacherPojo pojo = new TeacherPojo();
            //更新TeacherPojo
            slist.add(pojo);
            //填充TeacherPojo
            pojo.setTno(rs.getString(1));
            //填充第一列
            pojo.setTname(rs.getString(2));
            //填充第二列
 //           pojo.setSdate(rs.getString(3));
            pojo.setTsex(rs.getString(3));
            //填充第三列
 //           pojo.setSgrade(rs.getInt(5));
  //          pojo.setCareer(rs.getString(6));
            pojo.setCno(rs.getString(4));
            //填充第四列

        }
        conn.close();
        //结束
        return slist;
        //返回slist
    }
}
